/* 设置对应相关设置 */
#pragma once
#ifndef _SETTING_H
#define _SETTING_H
#include <Arduino.h>
#include <Arduino_JSON.h>
#include "LocalStorage.h"
#include "Access.h"
class Setting {
private:
  Setting();
  String  manager;
  JSONVar managerObj;
  bool setAdmin(String username, String password);       //设置用户管理员用户名及密码
  bool adminMatching(const String &username, const String &password);  //匹配管理员名称及密码是否正确
public:
  static Setting &getInstance();
  String getWiFi();                                                                                  //获取WiFi名及密码若本地没有，则将会随机生成名称；密码默认为12345678
  bool setWiFi(const String &SSID, const String &password, short mode);                      //设置WiFi名及密码,和工作模式
  String getAdminKey(const String &username, const String &password);                                //匹配管理员名称及密码正确返回adminkey值
  String changeAdmin(const String &username, const String &oldpassword, const String &newpassword);  //修改管理员名称及密码
  bool setUserList(const String &adminkey, const String &userList);                                  //设置用户列表
  String getUserList(const String &adminkey);                                                        //获取用户列表
  String getUserList(const String &username, const String &password);                                //根据判断管理员用户名密码正确返回用户列表包括密码
};

//extern Setting setting;  // 声明 'setting' 对象
/* 引入库就声明好类对象实例 */
#define setting Setting::getInstance()
#endif  //_SETTING_H